home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 011-020 / amok11 / trackdisksupport / trackdemo.mod < prev    next >
Text File  |  1993-11-04  |  2KB  |  72 lines

  1. MODULE TrackDemo;
  2.  
  3. FROM Exec             IMPORT Byte;
  4.  
  5. FROM TrackDisk        IMPORT badDriveType;
  6.  
  7. FROM InOut            IMPORT WriteString, WriteLn, WriteInt, Write;
  8.  
  9. FROM Heap             IMPORT AllocMem;
  10.  
  11. FROM TrackDiskSupport IMPORT OpenTrackDisk, CloseTrackDisk, GetDiskChange,
  12.                              ChangeState, ProtStatus, Motor, ReadBlock,
  13.                              GetDriveType, GetNumTracks;
  14.  
  15. VAR
  16.   dev: INTEGER;
  17.   err: Byte;
  18.   Buffer: POINTER TO ARRAY[0..511] OF CHAR;
  19.  
  20. BEGIN
  21.   AllocMem(Buffer,SIZE(Buffer^),TRUE);
  22.   IF Buffer=NIL THEN
  23.     WriteString("No free Memory"); WriteLn;
  24.   ELSE
  25.     FOR dev := 0 TO 3 DO
  26.       WriteString("Drive # "); WriteInt(dev,1);
  27.       err := OpenTrackDisk(dev,TRUE);
  28.       IF err=badDriveType THEN
  29.         WriteString(" not connected"); WriteLn;
  30.       ELSIF err#0 THEN
  31.         WriteString(" Error:"); WriteInt(err,4); WriteLn;
  32.       ELSE
  33.         WriteString(" ok");
  34.         WriteLn;
  35.         WriteString("  DiskChangeCount:");
  36.         WriteInt(GetDiskChange(dev),5);
  37.         WriteLn;
  38.         IF ChangeState(dev) THEN
  39.           WriteString("  Disk in Drive");
  40.         ELSE
  41.           WriteString("  No Disk in Drive");
  42.         END;
  43.         WriteLn;
  44.         IF ProtStatus(dev) THEN
  45.           WriteString("  Write enabled");
  46.         ELSE
  47.           WriteString("  Write protected");
  48.         END;
  49.         WriteLn;
  50.         err := ReadBlock(dev,0,Buffer,1,GetDiskChange(dev));
  51.         IF err#0 THEN
  52.           WriteString("Couldn't read block! Error: "); WriteInt(err,4);
  53.         ELSE
  54.           WriteString("  DiskID: ");
  55.           Write(Buffer^[0]); Write(Buffer^[1]);
  56.           Write(Buffer^[2]); Write(Buffer^[3]);
  57.         END;
  58.         WriteLn;
  59.         IF GetDriveType(dev)=1 THEN
  60.           WriteString('  3.5" Drive');
  61.         ELSE
  62.           WriteString('  5.25" Drive');
  63.         END;
  64.         WriteLn;
  65.         WriteString("  Tracks: "); WriteInt(GetNumTracks(dev),5); WriteLn;
  66.         IF Motor(dev,FALSE) THEN END;
  67.         CloseTrackDisk(dev);
  68.       END;   (* IF OpenTrackDisk()#0 THEN ELSE *)
  69.     END;   (* FOR dev := 0 TO 3 DO *)
  70.   END;   (* IF Buffer=NIL THEN ELSE *)
  71. END TrackDemo.
  72.